1. Field of the Invention
The present invention relates to multimedia communications. More particularly, the present invention relates to the efficient and reliable delivery of multimedia streams over a diverse computer network with dynamically variable bandwidth capacity.
2. Description of the Related Art
With the proliferation of connections to the internet by a rapidly growing number of users, the viability of the internet as a widely accepted medium of communication has increased correspondingly. Bandwidth requirements can vary significantly depending on the type of multimedia data being delivered. For example, a low resolution, low frame rate video telephone call may require only an ISDN connection, while a high resolution video broadcast of a live event to a large group of viewers may require the bandwidth of a T1 connection to the server. Hence, the ability to efficiently deliver multimedia data over a diverse computer network such as the internet is severely limited by the reliability and bandwidth capacity of the network connection.
The first problem is the average transmission capacity. In an ideal packet-based delivery system with an input buffer at a client computer, data packets arrive at the client computer in the same order and at the same interval the packets were sent by the server. In an ideal example, at time t, the client computer receives data packet #1 with a time stamp of 0.0 second. Subsequently, at time t+1 second, data packet #2 with a time stamp of 1.0 second arrives, followed by data packet #3 with a time stamp of 2.0 seconds at time t+2 seconds. As a result, packets arrive at and are consumed by the client computer at the same rate as they were sent.
However in a more realistic example, the network connection may be unable to keep up with the demands of the server/client stream traffic, i.e., the average bandwidth capacity of the network connection may be insufficient. Consequently, data packets will arrive at the client computer later and later in time, causing the input buffer to empty at a faster rate than it can be replenished, and eventually depleting the input buffer. For example, data packet #2 with the time stamp of 1.0 seconds may arrive at time t+1.2 seconds, followed by data packet #3 with the time stamp of 2.0 seconds arriving at time t+2.4 seconds. In other words, the average bandwidth capacity of the network connection is insufficient to support the transmission rate selected by the server/client. This is a first order bandwidth capacity problem.
The second problem is the rate of change of bandwidth capacity over time of the network connection. Since overall traffic within the internet is not constant, and since the internet is packet-switched, the bandwidth capacity provided by the internet for the network connection can vary dynamically over time. Accordingly, if an application is too aggressive in demanding bandwidth, during peak demand periods, the internet may be unable to cope with the peak demand, causing packets to be discarded/lost and requiring retransmission, which further degrades the overall performance of the network connection. This is a second order network bandwidth problem, i.e., changes in the bandwidth capacity over time.
In a real time application, e.g., a video on demand (VOD) application, the discarded/lost packets result in jitter. Jitter is defined as the second order timing difference in the packet arrival times. In the ideal example, where packet #2 and packet #3 arrive at t+1.0 second and t+2.0 seconds, respectively, jitter is zero., because the inter-arrival times, i.e., differences in arrival times, are identical.
However, in a more realistic example, packets #2 and #3 may arrive at t+0.9 second and t+2.1 seconds, with inter-arrival times of 0.9 second and 1.2 seconds, respectively. Although the input buffer of the client computer provides partial relief by buffering the incoming packets and releasing them to applications on the client computer at a less jittery rate, unfortunately, in the real time application, the length of the input buffer has to be kept to a minimum, thereby severely limiting the relief attainable.
In view of the foregoing, there are desired improved techniques for reliable and efficient transmission of multimedia streams to client(s) which efficiently utilize the network resources available over a period of time.